<script setup lang="ts">
import { reqGetConsultOrderPayUrl } from '@/services/consult'
import { Toast } from 'vant'
import { ref } from 'vue'

// 打开抽屉
// const show = ref(false)
// 这里的页面抽离是根据数据是否会发生变化确定的，如果数据不会发生变化，这直接定义在封装的组件中，其他随着逻辑变化的数据利用组件通信传入
const props = defineProps<{
  // 因为业务场景不一样 需要外面传进来
  payCallback: string
  // 外面传进来控制 抽屉控制面板的显隐
  show: boolean
  // 外面传进来的价格
  actualPayment: number
  orderId: string
  // 关闭的回调，不一定会关闭，所以是可选值
  beforeClose?: () => void
}>()
const emit = defineEmits<{
  (e: 'update:show', val: boolean): void
}>()

// 那种支付方式  （不变的）
const paymentMethod = ref<0 | 1>(0)

// ============================================= 点第二个支付
const pay = async () => {
  //判断是否选择了支付方式
  if (paymentMethod.value === undefined) return Toast('请选择支付方式')
  Toast.loading('跳转支付')
  const res = await reqGetConsultOrderPayUrl({
    orderId: props.orderId,
    paymentMethod: paymentMethod.value,
    // payCallback: 'http://localhost:5173/room'
    // payCallback: props.payCallback,
    payCallback: import.meta.env.VITE_APP_CALLBACK + props.payCallback
  })
  // console.log(res)
  // 把拿回来的支地址进行跳转
  window.location.href = res.data.payUrl
}
</script>

<template>
  <van-action-sheet
    :show="show"
    @update:show="emit('update:show', $event)"
    title="选择支付方式"
    :close-on-popstate="false"
    :closeable="false"
    :before-close="beforeClose"
  >
    <div class="pay-type">
      <p class="amount">￥{{ actualPayment.toFixed(2) }}</p>
      <van-cell-group>
        <van-cell title="微信支付" @click="paymentMethod = 0">
          <template #icon><cp-icon name="consult-wechat" /></template>
          <template #extra><van-checkbox :checked="paymentMethod === 0" /></template>
        </van-cell>
        <van-cell title="支付宝支付" @click="paymentMethod = 1">
          <template #icon><cp-icon name="consult-alipay" /></template>
          <template #extra><van-checkbox :checked="paymentMethod === 1" /></template>
        </van-cell>
      </van-cell-group>
      <div class="btn">
        <van-button type="primary" round block @click="pay">立即支付</van-button>
      </div>
    </div>
  </van-action-sheet>
</template>

<style scoped lang="scss">
.pay-type {
  .amount {
    padding: 20px;
    text-align: center;
    font-size: 16px;
    font-weight: bold;
  }
  .btn {
    padding: 15px;
  }
  .van-cell {
    align-items: center;
    .cp-icon {
      margin-right: 10px;
      font-size: 18px;
    }
    .van-checkbox :deep(.van-checkbox__icon) {
      font-size: 16px;
    }
  }
}
</style>
